import java.util.ArrayList;
import java.util.List;

/**
 * @author zhangshuai
 * @version V1.0
 * @Project Java2_26
 * @Package PACKAGE_NAME
 * @Description:
 * @Date 2025/5/21 10:15
 */

public class Demo1 {

    public static void main(String[] args) {
//        List<String> of = List.of(); //不可变集合

        List<Object> list = new ArrayList<>();//动态数组扩容
        list.add("1");

        //java 内存管理  堆内存  栈内存（虚拟机栈，本地方法栈）  方法区（常量池，静态域）  直接内存（堆外内存） 程序计数器
        //垃圾回收
        //内存泄露

        //java的特点  1.跨平台  2.自动垃圾回收机制  3.健壮性
        //1.如何保证跨平台   jvm  jdk  jre   Java虚拟机  Java开发工具包  Java运行环境   在不同的操作系统上安装不同的jvm
        //java代码编译后会生成.class文件  字节码文件  跨平台的原因是因为jvm的存在  一次编译，到处运行

        //进程：一个正在运行的程序  当前的程序是由多个方法组成的  一个方法就是一个线程
        // 线程：进程中的一个执行单元，最小的任务单元  多线程：一个进程中有多个线程  多进程：一个系统中有多个进程

        //创建对象   反射： 无参构造   有参构造

        //堆：存储对象，存储数组，存储字符串常量池

        //手动垃圾回收  System.gc()  建议垃圾回收器回收垃圾

        //虚拟机栈：存储局部变量，存储方法的参数，存储方法的返回值 对象引用

        //程序计数器：存储程序的地址，存储下一条指令的地址  modCount  计数器  记录修改次数

        //方法区：存储类的信息(Class)，静态变量（static），常量池，字符串常量池

        //垃圾回收运行过程：1.判断是否是可回收对象，是 ，垃圾回收, 否，继续存储   2.计数器引用法   可达性分析法

        //字符串：不可变的序列，底层用char[]数组存储




    }
}